2 LET sc=0: LET cf=0: LET mc=0 3 LET pd=0: LET zz=1 4 DIM x(6) 5 LET c$=CHR$ 13 10 GO SUB 9000: GO SUB 2001: LET cp=1 15 LET d$="It is now pitch dark. Be carefulyou don't damage anything." 200 GO SUB 5000 210 GO SUB 390 225 IF vb>9 AND a$="" THEN PRINT "You need a direct object.": GO TO 210 226 IF (vb=2 OR vb=6) AND a$="" THEN PRINT "You're not helping me here!": GO TO 210 230 IF pd AND vb<>1 AND vb<>5 AND vb<>7 AND vb<>8 AND vb<>12 AND vb<>14 THEN PR INT "In the dark? You could easily disturb something!": LET mc=mc+1: GO TO 210 240 GO TO vb*50+250 300 IF a$<>"" AND no=0 THEN PRINT "You have me baffled.": GO TO 210 302 IF no>12 OR no<5 THEN PRINT "I don't understand you.": GO TO 210 304 IF no>8 THEN LET no=no-4 306 LET no=no-4 310 IF p(cp,no)=0 AND pd THEN PRINT "Blundering around in the dark isn't a go od idea!": LET mc=mc+2: GO TO 210 312 IF p(cp,no)=0 THEN PRINT "Nope! You can't go that way.": GO TO 210 314 IF cp=1 AND no=1 THEN PRINT "You've only just arrived, and besides, the w eather outside"'"seems to be getting worse.": GO TO 210 316 LET cp=p(cp,no): GO TO 200 350 IF no=0 THEN GO TO 800 352 GO SUB 5300 354 IF o(no)=-1 THEN PRINT "You've already got it!": GO TO 210 360 IF no>4 THEN PRINT "Don't be ridiculous!" 365 IF no=3 OR no=4 THEN PRINT "It can't be done!": GO TO 210 366 IF no=1 AND cp=2 AND cf=2 THEN LET cf=1: GO TO 374 370 IF o(no)<>cp THEN PRINT "I can't see it here.": GO TO 210 374 IF zz>4 THEN PRINT "You're carrying too much.": GO TO 210 380 LET zz=zz+1: LET o(no)=-1: PRINT "OK.": GO TO 210 390 PRINT : PRINT : PRINT "What now * ?";: GO SUB 8000: PRINT m$: PRINT 391 LET a$="": LET b$="": LET vb=0: LET no=0 392 LET lc=LEN m$: FOR i=1 TO lc: IF m$(i)<>" " THEN LET b$=b$+m$(i): NEXT i 393 LET e$=b$: IF e$="go" THEN GO TO 397 394 IF LEN e$<3 THEN PRINT "I don't understand you at times!": GO TO 210 395 LET b$=e$( TO 3): FOR i=1 TO nv: IF b$=v$(i) THEN LET vb=i: GO TO 398 396 NEXT i 397 LET vb=1: LET a$=b$: GO TO 403 398 IF LEN e$+1>=LEN m$ THEN LET no=0: RETURN 399 GO TO 402 400 GO TO 200 402 LET a$=m$(LEN e$+2 TO ) 403 IF LEN a$<3 THEN PRINT "Je ne comprends pas!": GO TO 210 404 LET h$=a$: LET a$=a$( TO 3): FOR i=1 TO nn: IF a$=j$(i) THEN GO TO 407 405 NEXT i 406 LET no=0: RETURN 407 LET no=i: RETURN 450 PRINT "You are carrying the following:" 452 FOR i=1 TO lo: IF o(i)=-1 THEN PRINT o$(i) 454 NEXT i 456 IF zz=0 THEN PRINT "Not a lot!" 458 GO TO 210 500 PRINT "You have scored ";sc;" out of 2." 502 GO TO 210 550 IF no=0 THEN GO TO 800 552 GO SUB 5300 554 IF o(no)<>-1 THEN PRINT "You aren't carrying it!": GO TO 210 556 IF (no=1 OR no=2) AND cp<>2 THEN PRINT "This isn't the best place to"'"leav e a smart cloak lying"'"around.": GO TO 210 560 IF no=2 THEN LET o(no)=0: LET no=1: LET o(no)=-1 570 IF no=1 AND cf=0 THEN LET cf=1: LET sc=sc+1 580 PRINT "OK.": LET zz=zz-1: LET o(no)=cp: GO TO 210 600 PRINT "I'm afraid that you won't get much help from me, so just keep on t rying things. If nothing's happening, try using different words instead." 602 GO TO 210 612 PRINT '"You have lost..." 614 PRINT '"You scored ";sc;" out of 2." 615 PRINT "Do you want another game"'"(Y or N)?" 616 IF INKEY$="" THEN GO TO 616 617 IF INKEY$="y" THEN RUN 618 IF INKEY$="n" THEN PRINT ''"Bye.": GO TO 10000 620 GO TO 616 650 GO TO 1890 700 GO TO 350 750 IF no=0 THEN GO TO 800 751 GO SUB 5300 752 IF no<>4 THEN PRINT "There's nothing here to read.": GO TO 210 754 IF cp<>3 THEN PRINT "I can't see that here.": GO TO 210 756 IF mc<2 THEN GO TO 780 760 PRINT "The message has been carelessly trampled, making it difficult to r ead. You can just make out the words..." 770 GO TO 612 780 PRINT "The message, neatly marked in the sawdust, reads..." 785 LET sc=sc+1 790 GO TO 2510 800 IF no=0 THEN PRINT "What's a ";h$;"!": GO TO 210 801 IF no=4 THEN GO TO 750 802 IF no=3 AND cp=2 THEN GO TO 820 803 GO SUB 5300 804 IF no=1 AND cp=2 AND cf=2 THEN GO TO 810 805 IF o(no)<>cp AND o(no)<>-1 THEN PRINT "Where is it?": GO TO 210 806 IF no<>1 AND no<>2 THEN PRINT "It's nothing more than:": PRINT o$(no): GO T O 210 810 PRINT "A handsome cloak, of velvet"'"trimmed with satin, and slightlyspatte red with raindrops. Its blackness is so deep that it"'"almost seems to suck li ght from the room.": GO TO 210 820 PRINT "It's just a small brass hook," 822 IF cf=2 THEN PRINT "with a cloak hanging on it.": GO TO 210 824 PRINT "screwed to the wall.": GO TO 210 850 IF no=0 THEN GO TO 800 855 GO SUB 5300 860 IF (no=1 OR no=2) AND cp<>2 THEN GO TO 550 865 IF no=2 THEN LET o(no)=0: LET no=1: LET o(no)=-1 870 IF no<>1 THEN PRINT "Try something else.": GO TO 210 875 IF o(no)<>cp AND o(no)<>-1 THEN PRINT "I can't. It isn't here.": GO TO 210 880 IF o(no)=-1 THEN LET zz=zz-1 885 IF cf=0 THEN LET sc=sc+1 890 PRINT "You hang the cloak on the hook.": LET cf=2: LET o(no)=0: GO TO 210 900 GO TO 3000 950 GO TO 3200 1000 IF no=0 THEN GO TO 800 1002 GO SUB 5300 1004 IF o(no)<>-1 THEN PRINT "You don't have it.": GO TO 210 1006 IF no=2 THEN PRINT "You're already wearing it.": GO TO 210 1008 IF no<>1 THEN PRINT "You can't wear that.": GO TO 210 1010 LET o(no)=0: LET no=2: LET o(no)=-1 1020 PRINT "OK.": GO TO 210 1050 IF no=0 THEN GO TO 800 1052 GO SUB 5300 1054 IF o(no)<>-1 THEN PRINT "You don't have it.": GO TO 210 1056 IF no<>2 THEN PRINT "You're not wearing it.": GO TO 210 1060 LET o(no)=0: LET no=1: LET o(no)=-1 1062 PRINT "OK.": GO TO 210 1890 PRINT "OK."'"Do you want to save your"'"progress onto tape (Y or N)?" 1892 IF INKEY$="" THEN GO TO 1892 1893 IF INKEY$="y" THEN GO TO 3000 1894 IF INKEY$="n" THEN GO TO 614 1896 GO TO 1892 2001 LET nv=16: LET nn=12: LET z=3: LET lo=2: DIM p$(z,202): DIM p(z,4): DIM o$( lo,21): DIM o(nn): DIM v$(nv,3): DIM j$(nn,3): DIM t$(4,5) 2002 LET p$(1)="You are standing in a spacious hall, splendidly decorated in"+c $+"red and gold, with glittering"+c$+"chandeliers overhead. The"+c$+"entrance fr om the street is to the north, and there are door- ways south and west.": DATA -1,3,0,2 2003 LET p$(2)="The walls of this small room"+c$+"were clearly once lined with"+ c$+"hooks, though now only one"+c$+"remains. The exit is a door to the east.": DATA 0,0,1,0 2004 LET p$(3)="The bar, much rougher than you'dhave guessed after the opulence of the foyer to the north, is"+c$+"completely empty. There seems tobe some sort of message scrawledin the sawdust on the floor.": DATA 1,0,0,0 2200 FOR i=1 TO z: FOR j=1 TO 4: READ p(i,j): NEXT j: NEXT i 2210 DATA 0,-1 2212 DATA "a velvet cloak","a velvet cloak (worn)" 2222 FOR i=1 TO lo: READ o(i): NEXT i: FOR i=1 TO lo: READ o$(i): NEXT i 2250 DATA "clo","clo","hoo","mes","nor","sou","eas","wes","n","s","e","w" 2256 DATA "go","get","loo","inv","sco","dro","hel","qui","tak","rea","exa","han" ,"sav","loa" 2258 DATA "wea","rem" 2262 FOR i=1 TO nn: READ j$(i): NEXT i 2264 FOR i=1 TO nv: READ v$(i): NEXT i 2266 DATA "north","south","east","west" 2268 FOR i=1 TO 4: READ t$(i): NEXT i 2270 RETURN 2510 PRINT '"You have won!" 2512 GO TO 614 3000 CLS : PRINT "Insert cassette in tape unit andtap the space bar when ready." 3001 IF INKEY$="" THEN GO TO 3001 3002 IF INKEY$<>"" THEN GO TO 3002 3003 LET x(1)=cp: LET x(2)=cf: LET x(3)=mc: LET x(4)=pd: LET x(5)=sc: LET x(6)=z z 3004 PRINT "OK." 3006 SAVE "data1" DATA p$(): GO SUB 6900 3007 SAVE "data2" DATA p(): GO SUB 6900 3008 SAVE "data3" DATA o$(): GO SUB 6900 3009 SAVE "data4" DATA o(): GO SUB 6900 3010 SAVE "data5" DATA x() 3026 GO TO 614 3200 CLS : PRINT "Insert cassette in tape unit andtap the space bar when ready." 3201 IF INKEY$="" THEN GO TO 3201 3202 IF INKEY$<>"" THEN GO TO 3202 3204 PRINT "OK." 3206 LOAD "data1" DATA p$() 3207 LOAD "data2" DATA p() 3208 LOAD "data3" DATA o$() 3209 LOAD "data4" DATA o() 3210 LOAD "data5" DATA x() 3212 LET cp=x(1): LET cf=x(2): LET mc=x(3): LET pd=x(4): LET sc=x(5): LET zz=x(6 ) 3226 GO TO 200 5000 CLS 5001 IF (o(1)=-1 OR o(2)=-1) AND cp=3 THEN PRINT d$: LET pd=1: RETURN 5002 PRINT p$(cp): LET pd=0 5004 LET z$="You can see: " 5005 PRINT : PRINT 5006 FOR i=1 TO lo: IF o(i)=cp THEN PRINT z$;o$(i): LET z$="" 5008 NEXT i 5009 IF cp=2 AND cf=2 THEN PRINT "A cloak is hanging on the hook." 5012 PRINT : PRINT "You can go:": FOR i=1 TO 4: IF p(cp,i)<>0 THEN PRINT t$(i);" "; 5013 NEXT i 5018 RETURN 5300 IF no=1 AND o(2)=-1 THEN LET no=2: RETURN 5310 RETURN 6900 PRINT "Stop the tape but do NOT rewind it yet."''"Press space bar when read y to continue." 6902 IF INKEY$="" THEN GO TO 6902 6903 IF INKEY$<>"" THEN GO TO 6903 6904 RETURN 8000 INPUT LINE m$ 8002 RETURN 9002 PAPER 6: INK 0: BORDER 1: CLS 9004 PRINT "Welcome to Cloak of Darkness"''' 9008 PRINT "Hurrying through the rainswept November night, you're glad to see the bright lights of the"'"Opera House. It's surprising"'"that there aren't more people about but, hey, what do you"'"expect in a cheap demo game...?" 9016 PRINT : GO SUB 9500 9018 PRINT '"Ok, just setting it all up for you. Hang on!" 9020 RETURN 9500 PRINT '"Press the space key to continue." 9501 IF INKEY$="" THEN GO TO 9501 9502 IF INKEY$<>" " THEN GO TO 9501 9504 RETURN